package com.ceair.flight.refund.service.ota;

import com.ceair.flight.refund.dto.appmoblie.RefundDetailReq;
import com.ceair.flight.refund.dto.appmoblie.RefundDetailRes;
import com.ceair.flight.refund.dto.ota.CalcFeeRes;
import com.ceair.flight.refund.dto.ota.ReApplyReq;
import com.ceair.flight.refund.dto.ota.ReCalcFeeReq;
import com.ceair.flight.refund.dto.ota.RefundApplyReq;
import com.ceair.flight.refund.dto.ota.RefundApplyRes;
import com.ceair.flight.refund.dto.ota.RefundAttachmentReq;
import com.ceair.flight.refund.dto.ota.RefundRes;
import com.ceair.flight.refund.dto.ota.RefundV2Req;
import com.ceair.muservice.common.dto.BaseRes;

import javax.jws.WebService;
import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;

@WebService
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public interface IRefundService {
    /**
     * 退票申请：返回可以退票的乘机人信息和航段信息，供用户选择要退的乘机人和航段
     * @param request
     * @return
     */
    public RefundApplyRes refundApply(RefundApplyReq request);

    /**
     * 非自愿转自愿:当审核被拒绝时，由非自愿退票转成自愿退票
     * @param request
     * @return
     */
    CalcFeeRes reCalcFee(ReCalcFeeReq request);

    /**
     * 退票确认：确认退票
     * @param request
     * @return
     */
    public RefundRes refundV2(RefundV2Req request);

    /**
     * 重新提交申请:在退票审核被拒绝之后，重新发起退票申请
     * @param request
     * @return
     */
    public RefundRes reApply(ReApplyReq request);

    public BaseRes addAttachment(RefundAttachmentReq request);
}
